﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity.Infrastructure;
namespace ApiRepository.rep.Page
{
    //public class lsRepositorys<T> : IRepository<T> where T : class
    //{
    //    protected IDbSet<T> Lsdbset { get; set; }

    //    protected DbContext Lsc { get; set; }

    //    public lsRepositorys(DbContext ls)
    //    {
    //        if (ls == null)
    //        {
    //            throw new ArgumentException("", "");
    //        }

    //        this.Lsc = ls;
    //        this.Lsdbset = this.Lsc.Set<T>();
    //    }


    //    public IQueryable<T> All()
    //    {
    //        return this.Lsdbset;
    //    }

    //    public T Get(int id)
    //    {
    //        return this.Lsdbset.Find(id);
    //    }

    //    public void Add(T item)
    //    {
    //        DbEntityEntry lsent = this.Lsc.Entry(item);
    //        if (lsent.State != EntityState.Detached)
    //        {
    //            lsent.State = EntityState.Added;
    //        }
    //        else
    //        {
    //            this.Lsdbset.Add(item);
    //        }

    //        this.Lsc.SaveChanges();
    //    }

    //    public virtual void Delete(T lsenti)
    //    {
    //        DbEntityEntry lsnt = this.Lsc.Entry(lsenti);
    //        if (lsnt.State != EntityState.Deleted)
    //        {
    //            lsnt.State = EntityState.Deleted;
    //        }
    //        else
    //        {
    //            this.Lsdbset.Attach(lsenti);
    //            this.Lsdbset.Remove(lsenti);
    //        }

    //        this.Lsc.SaveChanges();
    //    }

    //    public void Delete(int id)
    //    {
    //        var lsenti = this.Get(id);
    //        if (lsenti != null)
    //        {
    //            this.Delete(lsenti);
    //        }
    //    }

    //    public void Update(int id, T item)
    //    {
    //        DbEntityEntry lsenti = this.Lsc.Entry(item);
    //        if (lsenti.State == EntityState.Detached)
    //        {
    //            this.Lsdbset.Attach(item);
    //        }

    //        lsenti.State = EntityState.Modified;

    //        this.Lsc.SaveChanges();
    //    }
    //}
}
